Semiconductor devices have been embedded with unique numbers for a number of purposes including identification. The unique numbers are typically programmed or burned into the semiconductor devices by semiconductor device programmers. The programmers provide actual electrical connections, valid timing sequences, and correct voltages to program the semiconductor devices accordingly with unique numbers.
The semiconductor device programmers are typically operated under the control of computer controllers. A computer controller is a computer with a control logic interface. The control logic interface provides a communication interface between the computer and a semiconductor device programmer. A device program with a unique number, such as for example a MAC address, is typically programmed into each semiconductor device of serialized semiconductor devices from a set of unique numbers that has been allocated to a company.
The unique numbers are typically generated according to an algorithm using keys that produce a set of numbers which are unique, but where valid numbers are difficult for a third party to generate without the keys. For security and identification purposes, the set of unique numbers may be non-sequential and may appear to be random as related to a larger set of numbers that it was allocated/generated from. Thus, the unique numbers are typically generated by one centralized source and files of generated numbers are then provided to the computer controllers for programming into the serialized semiconductor devices.
The files of generated numbers are provided in the form of CD ROMs, diskettes, and other movable storage media. The files may also be provided by email to a person for transfer to storage media. However, it is difficult to manage multiple programming stations from different physical/geographic locations. The files have to be manually transferred to the computer controllers.
In addition, large sets of unique numbers have to be generated for each physical location of programmers in order to ensure that there is never a shortage of unique numbers. However, these unique numbers may not all have been actually programmed into the semiconductor devices, which may limit the effectiveness of certain identification or security schemes. Further the availability of files with large sets of unique numbers, which if lost or stolen, may compromise the purpose for serializing the semiconductor devices.
It is therefore desirable to provide a method and apparatus for remote programming of semiconductor devices, which address the shortcomings of providing programming of serialized semiconductor devices noted above.